package com.fy.market.activity.repository;

import com.fy.market.activity.model.entity.RaffleActivityAccountMonthEntity;

/**
 * 抽奖活动账户表-月次数 仓储接口
 * @author fwq
 * @date 2025-10-11
 */
public interface IRaffleActivityAccountMonthRepository {

    /**
     * 根据用户ID和活动ID查询月次数账户
     * @param userId 用户ID
     * @param activityId 活动ID
     * @param month 月份
     * @return 月次数账户实体
     */
    RaffleActivityAccountMonthEntity queryRaffleActivityAccountMonthByUserIdAndActivityId(Integer userId, Integer activityId, String month);

    /**
     * 扣减月次数
     * @param userId 用户ID
     * @param activityId 活动ID
     * @param month 月份
     * @return 扣减结果
     */
    boolean decrRaffleActivityAccountMonthCount(Integer userId, Integer activityId, String month);

    /**
     * 创建月次数账户
     * @param raffleActivityAccountMonthEntity 月次数账户实体
     */
    void createRaffleActivityAccountMonth(RaffleActivityAccountMonthEntity raffleActivityAccountMonthEntity);

    /**
     * 更新月次数账户
     * @param raffleActivityAccountMonthEntity 月次数账户实体
     */
    void updateRaffleActivityAccountMonth(RaffleActivityAccountMonthEntity raffleActivityAccountMonthEntity);
}
